なぜAWSのrootユーザの利用が危険なのか?〜アカウント作成後の運用方法についてまとめてみた〜
はじめに
こんにちは!AWS事業本部コンサルティング部の和田響です。
AWSを利用するにあたって、基本的にはAWS アカウントのrootユーザーにはアクセスしないことが推奨されています。
AWS アカウントのルートユーザーのベストプラクティス rootユーザーの認証情報が必要なタスクがある場合を除き、AWS アカウントのrootユーザーにはアクセスしないことを強くお勧めします。
この記事ではなぜrootユーザの利用が危険なのかをまとめ、AWSアカウント作成後のrootユーザーの取り扱い方について記載します。
最近AWSのアカウントを作成した方のセキュリティ向上の一助になれば幸いです。
rootユーザーとは?
AWSのrootユーザーとは、AWSアカウント作成時に設定したメールアドレスとパスワードでログインできるユーザーのことです。したがって、rootユーザーにログインすることはAWSアカウントにログインするとも言い換えられます。
このルートユーザーはアカウントのすべての AWS リソースに完全にアクセスできます。
後述しますが、rootユーザーへのログインは基本的に行わず、作業用のユーザを作成することになります。
なぜrootユーザーの利用が危険なのか
rootユーザーの利用がなぜ危険なのかを具体的に考えてみます。
すべてのリソースに対して無制限なアクセスが可能だから
これはrootユーザーの特性そのものですが、ルートユーザにアクセスすると全てのAWSリソースに無制限にアクセスできます。
そのため、もしrootユーザーの認証情報(メールアドレスとパスワード)が悪意のある第三者に漏洩しアカウントへの侵入を許した場合、侵入者はそのアカウントでなんでもできます!
例えば非常に大きいサイズのインスタンスを複数作成し、コインマイニングを行うことも考えられます。
もしp5.48xlargeサイズのインスタンスを100台起動し3時間利用した場合、約450万円の利用料が請求されます。
p5.48xlargeの利用料が98.32USD /1時間、1USD = 150円 で計算した場合 98.32(1時間あたりの利用料) * 100(台数) * 3(利用時間) * 150(為替レート) = 4,424,400円
3時間自由な作業を許すだけで、これだけの被害が想定できます。
認証情報漏洩による被害についてはこちらの記事に詳しく記載されていますので、ぜひ一読ください!
責任共有モデルのお客様の責任に該当するから
AWSのセキュリティに関する責任分界点(AWSと利用者で責任を負うべき範囲)は責任共有モデルによって示されています。この責任共有モデルにおいて「IAM ツールでの適切な権限の適用」がお客様(利用者)の責任として明示されています。
お客様はエンドポイントにアクセスしてデータを保存および取得します。お客様は、データの管理 (暗号化オプションを含む)、アセットの分類、IAM ツールでの適切な権限の適用について責任を負います。
したがって、もし適切な権限の管理ができていないことによる損害は利用者が責任を持つ必要があります。(= AWS側は責任を負いません)
アカウント作成後の推奨される運用方法
AWSアカウントを作成した後は以下のアクションが推奨されます。
これを怠ると前述のようなリスクがあるので、アカウント作成後なるべく早く設定することをお勧めします。
MFA認証を設定する
多要素認証 (MFA)とは、ユーザーが単なるパスワードよりも多くの情報を入力する必要がある複数ステップのアカウントログインプロセスです。つまりMFA認証の設定をすると、ログインの際にユーザー名・パスワードに加えて追加の情報が必要になります。 そうすることで、ユーザ名・パスワードが悪意のある第三者に漏洩した場合でも、権限のないユーザがアカウントにアクセスすることを防ぐことができます。
5分もかからない作業なので、今すぐ設定しましょう!!
設定方法: AWS アカウントの root ユーザー (コンソール) に対して仮想 MFA デバイスを有効にする
強度の高いパスワードを設定し厳重に保護する
AWSアカウントに限った話ではないかもしれませんが、パスワードは強力なものにしましょう!
AWSのrootユーザーは以下の条件を満たすパスワードを設定する必要があります。
- 8~128 文字で構成されている
- 英字の大文字と小文字、数字、および ! @ # $ % ^ & * () <> [] {} | _+-= の記号を含める
- AWS アカウント アカウント名またはメールアドレスと同じでない
また、AWSではパスワードを以下のベストプラクティスに基づいて保護することを求めています。
クレジットカードの番号だと思って厳重に保護しましょう!!
- パスワードを定期的に変更する
- パスワードを知っているユーザーがアカウントにアクセスできるので、パスワードはプライベートに保つ
- 他のサイトで使用しているものとは異なるパスワードを使用する
- 安易に想像できるパスワードは使用しない(secret、password、amazon、123456)
設定方法: AWS アカウントのルートユーザー のパスワードを変更する
作業用のIAMユーザーを作成する
ここまでrootユーザーにログインする際のセキュリティを向上させましたが、
前述の通りAWSアカウント作成後rootユーザで作業することは好ましくありません。
基本的なAWSの操作は作業用のIAMユーザを作成し、今後はそのIAMユーザーとしてログインし作業することになります。
作業用のIAMユーザー作成方法は以下の記事を参照ください!
まとめ
今回はrootユーザーの使用がなぜ危険なのか?アカウント作成後はどうすべきか?について記載しました。
アカウント作成後は基本的にrootユーザーは使わないということは最低限覚えておきましょう!!
この記事がどなたかの参考になれば幸いです。